/**
 * 1)路由变化时触发，login页面、401页面、404页面放过
	2）其他页面每次路由切换，如果没有检查到登录信息则进入/login页面
		a)如果有登录信息，则放过。
		b)因为是动态生成路由，所以没有必要检查权限了。如果某个页面没有权限，则不会生成路由信息，系统会返回404页面
		c)TODO:每次页面变化，请求服务器当前授权是否变化，如果变化，则直接刷新页面。重新进入login页面
	
 */
import router from '@/router/index.ts'

import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css'// progress bar style
import {useUserStore} from '../store/index.ts'


NProgress.configure({ showSpinner: false })// NProgress Configuration
 




const whiteList = ['/login', '/404','/401']// no redirect whitelist

//@ts-ignore
router.beforeEach((to, from, next) => {
  
  
  NProgress.start() // start progress bar

  
       
  if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单，直接进入
    next()
    return;
  }

  //todo 判断用户是否登录
  
  const userStore = useUserStore();
  console.log(userStore.theUser)

  if (userStore.theUser) { // determine if there has token
    next()
  } else {
      next(`/login?redirect=${to.path}`) 
      NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
  }
  

})

router.afterEach(() => {
  NProgress.done() // finish progress bar
})

console.log('permission js load ok')